﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DB_NH.DB_Model.SimpleFlow
{
    /// <summary>
    /// 流程类型，根据流程类型，设定审批系统与业务系统之间的接口
    /// </summary>
    public class ApprovalRecordType : Entity
    {
        /// <summary>
        /// 类型代码：
        /// XMJD：项目建档审批流程；创建项目信息的申请流程；
        /// FYBZ：项目费用报账审批流程；
        /// XMGZ：项目盖章流程；
        /// FWFSQ：项目服务费申请；
        /// 
        /// 等等。。。
        /// </summary>
        public virtual string TypeCode { get; set; }

        /// <summary>
        /// 类型名称
        /// </summary>
        public virtual string TypeName { get; set; }

        /// <summary>
        /// 类型描述
        /// </summary>
        public virtual string TypeDiscribe { get; set; }

        /// <summary>
        /// 该类型审批通过完成时调用的API链接地址
        /// 传递的参数有：
        /// 1、业务记录ID；
        /// 2、审批意见；
        /// </summary>
        public virtual string UrlForApprove { get; set; }

        /// <summary>
        /// 该类型审批不通过、返回发起人调用的API链接地址
        /// 传递的参数有：
        /// 1、业务记录ID；
        /// 2、审批意见；
        /// </summary>
        public virtual string UrlForReject { get; set; }

        /// <summary>
        /// 该类型审批挂起、暂停时调用的API链接地址
        /// 传递的参数有：
        /// 1、业务记录ID；
        /// 2、审批意见；
        /// </summary>
        public virtual string UrlForHold { get; set; }

        /// <summary>
        /// 该类型审批时的操作链接地址模板（传递参数使用{0}、{1}的方式）
        /// </summary>
        public virtual string UrlForSP { get; set; }

        /// <summary>
        /// 改流程类型可以执行审批完成操作用户角色代码，以逗号分割；
        /// 当现实审批界面时，判断操作人员的角色是否在角色列表中，如果在，则现实可完成的界面节点
        /// </summary>
        public virtual string CanApprovalRoleCodes { get; set; }

        /// <summary>
        /// SimpleFlow允许调用接口的IP（开始地址）
        /// </summary>
        public virtual string SimpleFlowCallInterfaceIP1 { get; set; }

        /// <summary>
        /// SimpleFlow允许调用接口的IP（结束地址）
        /// </summary>
        public virtual string SimpleFlowCallInterfaceIP2 { get; set; }

        /// <summary>
        /// 业务系统允许调用接口的IP（开始地址）
        /// </summary>
        public virtual string BusinessSystemCallInterfaceIP1 { get; set; }

        /// <summary>
        /// 业务系统允许调用接口的IP（结束地址）
        /// </summary>
        public virtual string BusinessSystemCallInterfaceIP2 { get; set; }

        /// <summary>
        /// 该类型的审批记录列表
        /// </summary>
        public virtual IList<ApprovalRecord> Records { get; set; }

        public ApprovalRecordType()
        {
            Records = new List<ApprovalRecord>();
        }
    }
}
